package net.sk.china.city.service;

import net.sk.china.city.domain.User;
import net.sk.china.city.domain.dto.excel.AddUser;
import net.sk.china.city.domain.dto.user.UserDetailDTO;
import net.sk.china.city.domain.dto.user.UserItemDTO;
import net.sk.china.city.domain.dto.user.UserSearchDTO;
import net.sk.china.city.domain.dto.user.UserUpdateDTO;
import net.sk.china.city.domain.dto.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 前台用户Service接口
 * 
 * @author yangguanjin
 * @date 2024-04-07
 */
public interface IUserService 
{
    /**
     * 查询前台用户
     *
     * @param pkId 前台用户主键
     * @return 前台用户
     */
    public UserDetailDTO selectUserByPkId(Long pkId);

    /**
     * 查询前台用户列表
     *
     * @param userSearchDTO 前台用户
     * @return 前台用户集合
     */
    public TableDataInfo<UserItemDTO> selectUserList(UserSearchDTO userSearchDTO);

    TableDataInfo<UserItemDTO> selectUserList2(UserSearchDTO userSearchDTO);

    /**
     * 新增前台用户
     * 
     * @param userDTO 前台用户
     * @return 结果
     */
    public int insertUser(UserUpdateDTO userDTO);

    /**
     * 修改前台用户
     * 
     * @param userDTO 前台用户
     * @return 结果
     */
    public int updateUser(UserUpdateDTO userDTO);

    /**
     * 修改积分
     */
    public int updatePoint(UserUpdateDTO userUpdateDTO);

    /**
     * 批量删除前台用户
     * 
     * @param pkIds 需要删除的前台用户主键集合
     * @return 结果
     */
    public int deleteUserByPkIds(Long[] pkIds);

    /**
     * 删除前台用户信息
     * 
     * @param pkId 前台用户主键
     * @return 结果
     */
    public int deleteUserByPkId(Long pkId);

    int importUser(MultipartFile multipartFile);

    /**
     * 根据手机号查询用户积分信息
     * @param phone
     * @return
     */
    User getUserByPhone(String phone);

//    User phone(String phone);
//
//    int insertPhone(AddUser addUser);

    int insertUserBatch(List<AddUser> addUser);

    int fullImportUser(MultipartFile multipartFile);

    int fullInsertUserBatch(List<AddUser> addUser);
}
